# -*- coding: utf8-*-. # For Forelesninger om Programmering i MENA1000 # Forelesning 5: NumPy **************************************************** # Dette handler om noen matematiske ("numeriske") funksjoner i numpy-modulen. # Eksemplene her dekker stort sett direkte det som st?r i Python-kompendiet for NumPy. kvadrattall = range(1,21) for k in kvadrattall: k = k**2 print k, print print # S?kalte list comprehensions gj?r slikt mer effektivt: kvadrattall2 = [k**2 for k in range(1, 21)] print kvadrattall2 print # Arrayer er enda mer effektive. ****************************************** # For ? kunne bruke arrayer m? vi importere numpy-modulen: from numpy import * # En array er en liste der alle elementene er av samme type: a = array(float) # Vi kan fylle den med et antall nuller ved ? bruke funksjonen zeros: n = 10 a = zeros(n, float) # Vi kan la Python generere en array med n punkter mellom p og q: p = 0.0 q = 1273.0 n = 10 a = linspace(p, q, n) print a print # Pr?v ? ?ke n til hhv 100, 10000 og 100000 og se hva print-funksjonen gj?r :-) # Vi kan fylle arrayer p? mange m?ter, f.eks.: def f(x): return x**2 + x**3 a = linspace(1, 10, 100) farray = f(a) print farray print # Her gj?r vi nesten det samme: for n in range(1,100): farray[n-1] = (n/10.0)**2 + (n/10.0)**3 print farray # ? print # Dersom arrayen skal ha forskjellige verdier etter visse kriterier kan vi vektorisere den: def H(x): if x < 0: return 0 else: return 1 a = linspace(-5, 5, 11) Hvec = vectorize(H) harray = Hvec(a) print harray # Kan vi gj?re det mer "manuelt"?: for n in range(-5,5,1): harray[n+5] = H(n) print harray